Calendar-enhanced awareness for instant messaging systems and electronic status boards

ABSTRACT

A method, system, and product are disclosed for providing calendar-enhanced awareness/presence information for instant messaging systems and electronic status boards. This invention automates status transitions, enhances and automates status messages, and automates and extends the IM “who can see me” function. Additionally, this invention extends awareness to dimensions other than IM status, to include availability in-person, via telephone, via wireless device or wireless messaging device (e.g., pager).

CROSS-REFERENCE TO RELATED APPLICATIONS

The present invention is related to the subject matter of co-pendingpatent application Ser. No. 09/670,844 entitled “CALENDAR EVENTS ANDCALENDAR-DRIVEN APPLICATION TECHNIQUE”, filed on Sep. 27, 2000, andco-pending patent application Ser. No. 09/671,001 entitled“CALENDAR-DRIVEN APPLICATION TECHNIQUE FOR PREPARING RESPONSES TOINCOMING EVENTS” filed on Sep. 27, 2001, both assigned to the assigneeherein and incorporated herein by reference.

FIELD OF THE INVENTION

The present invention relates to a computer system, and moreparticularly to a method, system, and product that uses a person'scalendar and a set of preferences to improve and extend instantmessaging awareness and electronic status board information withcalendar-enhanced awareness/presence and contact information.

BACKGROUND OF THE INVENTION

Calendars, and electronic calendars in particular, often contain awealth of information about their owner. For example, an individual mayuse an electronic calendar to maintain information about his workschedule, his meetings and other appointments, his vacation and businesstravel plans (including when he will be away, which flights or othertransportation he will use, where he can be reached while away, who hemay visit while away, etc.), phone calls that need to be made atparticular times, and so forth. Examples of electronic calendaringsystems include Microsoft Outlook™ 2000, Lotus Organizer™, and LotusNotes™. Such systems are quite popular among users. “Outlook” is atrademark of Microsoft Corporation. Lotus Organizer and Lotus Notes aretrademarks of Lotus Development Corporation.

Use of electronic calendaring systems for purposes such as schedulingmeetings of multiple persons is known in the art. For example, aninvitation list may be created for a particular meeting, and acalendaring software application may then use this list to check eachinvitee's calendar for available time periods. A meeting may then bescheduled during a time period in which all, or some majority, of theinvitees has sufficient time available on their calendar. However, it isdesirable to more fully exploit the information stored in thecalendaring system.

An automated system is described in the Applicants' related patentapplications whereby electronic calendar-based engines are used to driveother software applications and agents, such as software agents thatrespond to e-mail and telephone calls by providing automated responsesregarding the recipient's current availability. The automated systemmaintains a database of dynamically updated contact information for aplurality of people. The automated system accesses the dynamic contactdatabase in order to determine a recipient's current availability. Forexample, the automated system may determine, utilizing the dynamiccontact database, when the person is out of the office and couldautomatically generate the appropriate responses to incoming e-mails,telephone calls, etc., during the duration that the person is out of theoffice.

The automated system obtains information about a person's status, suchas “in the office”, “out of the office”, “outside working hours”, etc.,from the individual's calendar. The automated system then combines thisstatus information with preferences specified by this person thatdescribe how the person could be contacted most immediately, analternate contact, the frequency with which the person accesses voicemail and/or e-mail, and other information. The combined informationobtained from the calendar and the preferences information are eitherstored in the dynamic contact database or derived real-time.

Users often communicate with one another using an instant messaging (IM)service. Instant messaging services permit a user to transmit anelectronic message via a network, such as the Internet, to another user.Typically, users maintain a listing of people frequently contacted viathe instant message service. This listing is displayed on their IMclient and is often referred to as a “buddy list”.

The buddy list has function in addition to maintaining a list offrequently contacted users; it is also used to provide information aboutthe users. The buddy list can indicate a user's IM status (e.g.,“active”), display user-provided messages (e.g., “I'm in a meeting”),and display system-provided messages (e.g., the amount of time a user isonline). A user's IM status may be represented by a particular icon,text color or font. An active user may have a green icon next to hisname whereas an offline user may have a gray icon. Typical IM statussettings are: “active, “away”, “do not disturb”, “mobile”, and“offline”. A user can select a particular IM status. For example, theuser may select “do not disturb” while he is using his computer for acustomer presentation, and then select “active” when the presentation iscompleted. Alternately, the IM system may use techniques such asdetecting keyboard and mouse activity to determine if the user isactive. If activity is not detected for some predetermined amount oftime the system could automatically set the user to “away”.

The user-provided message can contain additional information about theparticular user. This message may be user-customized, or selected from alist provided by the system. The message can be typed each time the usersets his status, or a unique message can be associated with a particularstatus. From the buddy list, one can view a user's message in variousways. For example, the message may be displayed next to the user's IDwhen the cursor is moved to hover over the ID.

While the buddy list information is somewhat helpful, its accuracy andcontent are limited. The user's status is set manually by the user, orautomatically based on limited data. Additionally, the status is anindication of only the user's IM status—not his in-person availability,phone availability, or status via any other communications means. Theuser-provided message is also limited in that it typically contains onlyminimal or generic information (e.g., “I'm busy right now”). It would beadvantageous to include more detailed information in the message such asthe user's return date and time, and how the person might best becontacted at this time. Providing this level of detail manually wouldrequire additional user maintenance and the information would easilybecome outdated.

A similar set of problems is found with status boards. A status boardcan be a physical board or an online tool that is used by a group ofusers to indicate status information. The status information typicallyincludes a person's in-person status (e.g., “out of the office”),destination, return date and time, and backup person. The physicalstatus board is usually a centrally-located whiteboard that users updatewith their current status information by using a dry-erase marker. Theonline version allows the users to update their status from a computeror other electronic device.

Status boards are limited in that they typically require a person tomanually update his status. The physical status board is additionallylimited in that it can only be updated by someone physically at thatlocation. As with the information provided by the IM system, statusboard information usually provides only a narrow view of a person'savailability; it does not typically include a person's availability viaoffice phone, cell phone, pager, and so forth. Additionally, thephysical status board is restricted by the amount of space allocated foreach person.

Therefore, a need exists for a method, system, and product that providedynamically-updated enhanced contact information for instant messagingsystems and electronic status boards.

SUMMARY OF THE INVENTION

A method, system, and product are disclosed for providing dynamiccontact information to instant messaging (IM) systems and electronicstatus boards. This invention automates the changing of an entity'sstatus on IM systems and electronic status boards, and also dynamicallyprovides additional information that is not currently available withthese systems.

An electronic calendar is maintained that includes information about anentity (e.g., a person, airplane, etc.). As the information in thecalendar changes, the information provided to the IM systems andelectronic status boards is automatically updated. Thus, when anentity's status changes, such as from being in the office and free tobeing in a meeting, the dynamic contact information will beautomatically updated.

The dynamic contact information is composed of an entity's status andcontact information. An entity's status can have several aspects:available in person, available via cell phone, available via pager, andso forth. Contact information is comprised of the information related toan entity's status, the preferences they've selected and informationfrom the organizational directory. Examples of contact informationinclude: the designated backup person, the best means to contact thisentity, the entity's cell phone number, how long the entity will beavailable for calls on this number, and so on.

The dynamic contact information is derived from the entity's calendar,preferences, and organizational directory. The raw data is analyzed toidentify time periods in which the entity has common status and contactinformation. At the start of each time period the dynamic contactinformation associated with that time period is provided to the IMservers and the status board servers. The IM servers and status boardservers (which will henceforth be referred to as status servers) willthen publish this information to their subscribers/clients.

This invention also identifies a means for displaying the dynamiccontact information on the client. For each name in the buddy list, theclient may display icons next to the name for the various types ofstatus. For example, a telephone icon may be used to show an entity'savailability via telephone, and a person icon may represent the entity'sin-person status. The color of the icons could be used to indicate thestatus. Green could signify available, gray unavailable, and so on. Toretrieve more detailed information the user could move the cursor over(i.e., hover over) a particular icon or name. The information pertinentto that icon or name would then be displayed. For example, by hoveringover the telephone icon information such as the phone number, type ofphone (e.g., cell, office), and telephone availability information maybe displayed. By hovering over an entity's name, the user may view allof the available dynamic contact information for the entity. Additionalinformation such as alternate contact people, and any other informationthat might be obtained from an entity's calendar, preferences ororganizational directory may be provided.

Another aspect of this invention provides for the display of the dynamiccontact information on a physical device other than a typical computerdisplay. This physical device could be a television monitor (such asthose used at airports to display flight information), or a digitaldisplay. By providing this feature, organizations with few computerscould provide the dynamic contact information to a larger audience.

The present invention permits a user to specify various preferences thatdefine the amount and types of data displayed by the client. Forexample, the user may wish to view all data or possibly only datapertaining to in-person availability. The user may also choose todisplay only those entities that are currently available in person. Theclient could accommodate this by displaying only the appropriate fieldsof the dynamic contact information and entities that meet the specifieddisplay preferences.

The present invention also permits an entity to specify variouspreferences that define the amount of information to be provided by thesystem to users. An entity can control whether or not information willbe displayed to all users, to only a subset of users, or to all usersexcept an explicitly defined set of specified users. Additionally, theentity can define the specific information that can be displayed.Combining these features allows an entity to identify which users cansee which data fields. For example, an entity can specify that his cellphone information is not available to anyone, but his pager informationis available to everyone. This feature enhances the current IM “who cansee me” function by providing additional controls and automating theprocess. For example, an entity can specify that while in a meeting onlypeople on the invitee list can see his IM presence. At the start time ofthe meeting the system automatically updates the entity's information;the invitees' IM clients indicate that the user is online while allother IM clients show that the user is not.

The above as well as additional objectives, features, and advantages ofthe present invention will become apparent in the following detailedwritten description.

BRIEF DESCRIPTION OF THE DRAWINGS

The novel features believed characteristic of the invention are setforth in the appended claims. The invention itself, however, as well asa preferred mode of use, further objectives and advantages thereof, willbest be understood by reference to the following detailed description ofan illustrative embodiment when read in conjunction with theaccompanying drawings, wherein:

FIG. 1 illustrates a representative workstation hardware environment inwhich the present invention may be practiced;

FIG. 2 illustrates a data processing network in which the presentinvention may be practiced;

FIG. 3 is a block diagram that illustrates a status message systemcoupled to an advanced calendar system in accordance with the presentinvention;

FIG. 4 is a high level flow chart that depicts the status engineprocessing requests and transmitting dynamic contact information inaccordance with the present invention;

FIG. 5 is a high level flow chart that illustrates the status serverreceiving and processing events in accordance with the presentinvention;

FIG. 6 is a high level flow chart that depicts the processing of variousinstant messenger client user actions in accordance with the presentinvention;

FIG. 7 depicts a computer display screen displaying a listing ofentities and a message that is generated and displayed when a cursorhovers over an entity's name in accordance with the present invention;

FIG. 8 depicts a computer display screen displaying a listing ofentities and a message that is generated and displayed when a cursorhovers over a phone icon in accordance with the present invention;

FIG. 9 depicts a computer display screen displaying a listing ofentities and a message that is generated and displayed when a cursorhovers over an in-person icon in accordance with the present invention;

FIG. 10 depicts a computer display screen displaying a listing ofentities and a message that is generated and displayed when a cursorhovers over an instant messaging icon in accordance with the presentinvention;

FIG. 11 depicts a computer display screen displaying a listing ofentities and a message that is generated and displayed when a cursorhovers over a wireless icon in accordance with the present invention;and

FIG. 12 depicts an electronic status board in accordance with thepresent invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

A preferred embodiment of the present invention and its advantages arebetter understood by referring to the figures, like numerals being usedfor like and corresponding parts of the accompanying figures.

The invention is preferably realized using a well-known computingplatform, such as an IBM RS/6000 server running the IBM AIX operatingsystem. However, it may be realized in any computer system platform,such as an IBM personal computer running the Microsoft Windows operatingsystem or a Sun Microsystems workstation running operating systems suchas UNIX or LINUX or a router system from Cisco or Juniper, withoutdeparting from the spirit and scope of the invention.

The servers in the present invention can run on multiple platforms. Theclients can also run on different platforms from PCs, handheld devicessuch as palm devices and smart cell phones (e.g., WAP-enabled phones).The status board could be implemented using a very dumb display, such asa mechanical display used at some airports and train stations or on awell-known computing platform.

In the description of this embodiment, the term “people” is sometimesused instead of “entities”. This is done for ease of discussion, and notintended to limit the scope of the invention.

FIG. 1 illustrates a representative workstation hardware environment inwhich the present invention may be practiced. The environment of FIG. 1comprises a representative single user computer workstation 10, such asa personal computer, including related peripheral devices. Devices suchas palms and smart cell phones (not shown) can be used instead of thesimple workstation depicted by FIG. 1.

The workstation 10 includes a microprocessor 12 and a bus 14 employed toconnect and enable communication between the microprocessor 12 and thecomponents of the workstation 10 in accordance with known techniques.The workstation 10 typically includes a user interface adapter 16, whichconnects the microprocessor 12 via the bus 14 to one or more interfacedevices, such as a keyboard 18, mouse 20, and/or other devices 22, whichcan be any user interface device, such as a touch sensitive screen,digitized entry pad, etc. The bus 14 also connects a display device 24,such as an LCD screen or monitor, to the microprocessor 12 via a displayadapter 26. The bus 14 also connects the microprocessor 12 to memory 28and long-term storage 30 which can include a hard drive, diskette drive,tape drive, or other type of storage device.

The workstation 10 may communicate with other computers or networks ofcomputers, for example via a communications channel or modem 32.Alternatively, the workstation 10 may communicate using a wirelessinterface at 32, such as a CDPD cellular digital packet data (CDPD)card. The workstation 10 may be associated with such other computers ina local area network (LAN) or a wide area network (WAN).

FIG. 2 illustrates a data processing network 240 in which the presentinvention may be practiced. The data processing network 240 may includea plurality of individual networks, such as wireless network 242 andnetwork 244, each of which may include a plurality of individualworkstations 210 and other devices such as pagers 208 and cellularphones 209. Additionally, as those skilled in the art will appreciate,one or more LANs may be included (not shown), where a LAN may comprise aplurality of intelligent workstations and other devices, possiblycoupled to a host processor.

Still referring to FIG. 2, the networks 242 and 244 may also includemainframe computers or servers, such as a gateway computer 246 orapplication server 247 (which may access a data repository 248). Agateway computer 246 serves as a point of entry into each network 244.The gateway 246 may be preferably coupled to another network 242 bymeans of a communications link 250 a. The gateway 246 may also bedirectly coupled to one or more workstations 210 using a communicationslink 250 b, or to other devices such as those shown at element 211through a link 250 c. The gateway computer 246 may be implementedutilizing an Enterprise Systems Architecture/370 available from theInternational Business Machines Corporation (“IBM”), an EnterpriseSystems Architecture/390 computer, or other suitable computer system.Depending on the application, a midrange computer, such as anApplication System/400 (also known as an AS/400) may be employed.“Enterprise Systems Architecture/370” is a trademark of IBM; “EnterpriseSystems Architecture/390”, “Application System/400”, and “AS/400” areregistered trademarks of IBM.

The gateway computer 246 may also be coupled 249 to a storage device,such as data repository 248. Further, the gateway 246 may be directly orindirectly coupled to one or more workstations 210 and other devicessuch as those shown at elements 208, 209, and 212.

Those skilled in the art will appreciate that the gateway computer 246may be located a great geographic distance from the network 242, andsimilarly, the workstations 210 and other devices 208, 209, 211, 212 maybe located a substantial distance from the networks 242 and 244. Forexample, the network 242 may be located in California, while the gateway246 may be located in Texas, and one or more of the workstations 210 maybe located in New York. The workstations 210 and other devices such asthose shown at elements 208 and 209 may connect to the wireless network242 using a networking protocol such as the Transmission ControlProtocol/Internet Protocol (“TCP/IP”), AppleTalk®, a particular wirelessnetworking protocol, such as the Wireless Application Protocol (“WAP”),the Global System for Mobile communications (“GSM”), or the SystemsNetwork Architecture (“SNA”) over a number of alternative connectionmedia, such as cellular phone, radio frequency networks, or satellitenetworks. “AppleTalk” is a registered trademark of Apple Computer, Inc.The wireless network 242 preferably connects to the gateway 246 using anetwork connection 250 a such as TCP or UDP (User Datagram Protocol)over IP, X.25, Frame Relay, ISDN (Integrated Services Digital Network),or PSTN (Public Switched Telephone Network). The workstations 210 mayalternatively connect directly to the gateway 246 using dial connections250 b or 250 c. Further, the wireless network 242 and network 244 mayconnect to one or more other networks (not shown), in an analogousmanner to that depicted in FIG. 2.

Software programming code that embodies the present invention istypically accessed by the microprocessor of the workstation, otherdevices such as those shown at 208 and 209, and/or server 247 fromlong-term storage media 30 (shown in FIG. 1) of some type, such as aCD-ROM drive or hard drive. The software programming code may beembodied on any of a variety of known media for use with a dataprocessing system, such as a diskette, hard drive, or CD-ROM. The codemay be distributed on such media, or may be distributed from the memoryor storage of one computer system over a network of some type to othercomputer systems for use by such other systems. Alternatively, theprogramming code may be embodied in the memory 28, and accessed by themicroprocessor 12 using the bus 14 (shown in FIG. 1). Furthermore,networked storage, including storage area networks and network-attachedstorage, may also be used. The techniques and methods for embodyingsoftware programming code in memory, on physical media, and/ordistributing software code via networks are well known and will not befurther discussed herein.

A user of the present invention may connect his computing device to aserver using a wired connection, or a wireless connection. Wiredconnections are those that use physical media such as cables andtelephone lines, whereas wireless connections use media such assatellite links, radio frequency waves, and infrared waves. Manyconnection techniques can be used with these various media, such as:using the computer's modem to establish a connection over a telephoneline; using a LAN card such as Token Ring or Ethernet to establish aconnection over a local area network; using a cellular modem toestablish a wireless connection. The user's computing device may be anytype of computer processor, including laptop, handheld or mobilecomputers; smart phones with display; vehicle-mounted devices; desktopcomputers; or mainframe computers, having processing and communicationcapabilities. The features of the present invention may also be accessedby users who are not using computing devices, but instead are usingdevices such as a smart telephone 211 or an electronic status board 212.The remote server, similarly, can be one of any number of differenttypes of computer that have processing and communication capabilities.These techniques are well known in the art, and the hardware devices andsoftware that enable their use are readily available.

In the preferred embodiments, the present invention is implemented asone or more modules (also referred to as code subroutines, or “objects”in object-oriented programming) of a computer software program (orprograms). The program code of the preferred embodiments may beimplemented as objects in an object-oriented programming language, or ina conventional procedure oriented language, or in a mix ofobject-oriented and procedural language code.

FIG. 3 is a block diagram that illustrates a status system coupled to anadvanced calendar system in accordance with the present invention. Astatus system 300 is coupled to a status engine 302, which is coupled toan advanced calendar system 304. Status system 300 includes a statusserver 306, which is coupled to multiple clients, such as clients 308and 310.

The advanced calendar system 304 includes a calendar engine 312, aplurality of entities' electronic calendars 314, entities' preferences316, an organization directory 318, and communication status services319. The calendar engine 312, uses the data from entities' calendars 314and preferences 316, from the organization directory 318, and from thecommunication status services to create the dynamic contact information.The dynamic contact information for each entity will contain data suchas the entity's availability via cell phone, when the entity will nextbe available for a page, how frequently the entity checks voice mail,etc. This is then stored in the status table. The status table containsrecords of dynamic contact information for all entities. Typically,multiple records exist for each entity; each record designates a uniquetime period.

The communication status services 319, provides data indicating whethera communication means is in service and if it is currently available forcommunication. The device's service provider provides this information.The status engine 302, communicates with the advanced calendar system304 to determine if the dynamic contact information has changed for anyentity. If a change has occurred this information is sent to the statussystem 300. The status engine could also serve multiple status systems.

FIG. 4 is a high level flow chart that depicts the status engineprocessing requests and transmitting dynamic contact information to thestatus server. The process starts as depicted by block 400 andthereafter passes to block 402, which illustrates a determination ofwhether or not the status engine has received an update request from astatus server. This update request will be an indication that the statusserver has lost all of its information and therefore is requesting anupdate for all people. If a determination is made that the status enginehas received an update request, the process passes to block 404, whichdepicts the status engine clearing all “sent” indicators for each entryfor the requesting status server to indicate that this dynamic contactinformation entry has not been sent to the status server. The processthen passes to block 406. Referring again to block 402, if adetermination is made that the status engine has not received an updaterequest, the process passes to block 406, which illustrates the statusengine searching the status table for an entry having its “sent”indicator cleared and where the current time is greater than or equal toan entry's start time and before the entry's end time. Next, block 408depicts a determination of whether or not an entry was found that metthe criteria described as depicted by block 406. If a determination ismade that an entry was not found that met the criteria described asdepicted by block 406, the process passes to block 410, whichillustrates the status engine sleeping for a specified period of time.The process then passes back to block 402.

Referring again to block 408, if a determination is made that an entrywas found that met the criteria described as depicted by block 406, theprocess passes to block 412, which illustrates the status engineretrieving the entry from the status table and then transmitting theperson's dynamic contact information for this entry to the statusserver. For purposes of this discussion, the term “transmit” includesboth the transmittal of data and the assurance that transmittal hassucceeded. Such transmittal may include multiple communications betweenthe status engine and the status server. Next, block 414 depicts thestatus engine setting the entry's “sent” indicator. Thereafter, block416 illustrates the status engine deleting entries from the status tablewhen the current date and time are greater than the entry's end date andtime. The process then passes back to block 406.

FIG. 5 is a high level flow chart that illustrates the status serverreceiving and processing events in accordance with the presentinvention. The process starts as depicted by block 500 and thereafterpasses to block 502, which illustrates the status server receiving anevent. The process then passes to block 504, which depicts adetermination of whether or not the event was received from the statusengine or from a client. If a determination is made that the event wasreceived from the status engine, the process passes to block 506, whichillustrates a determination of whether or not the event is an event toupdate dynamic contact information. If a determination is made that theevent is not an event to update dynamic contact information, the processpasses to block 508, which depicts logging an error. The process thenpasses back to block 502.

Referring again to block 506, if a determination is made that the eventis an event to update dynamic contact information, the process passes toblock 510, which illustrates the status server updating the person'sdynamic contact information within the status server to reflect the newdata. The process then passes to block 512, which depicts the statusserver executing the appropriate server function. One example of anappropriate server function would be for the status server to transmitthe person's new dynamic contact information to each client that hassubscribed to this person's dynamic contact information. The processthen passes back to block 502.

Referring again to block 504, if a determination is made that the eventis from one of the clients, the process passes to block 514, whichillustrates a determination of whether or not the event is an update ofthe dynamic contact information. If a determination is made that theevent is not an update of the dynamic contact information, the processpasses to block 512. Referring again to block 514, if a determination ismade that the event is an event to update dynamic contact information,the process passes to block 510, which depicts the status serverupdating the person's dynamic contact information within the statusserver. The process then passes to block 512.

FIG. 6 is a high level flow chart that depicts the processing of varioususer actions on an Instant Messaging client in accordance with thepresent invention. The process starts as illustrated by block 600 andthereafter passes to block 602, which depicts the execution of a useraction. If the user has moved the cursor to and held it over the name ofone of the people on the buddy list, the process passes to block 604,which illustrates displaying a full status message, such as the exampledepicted by FIG. 7, for the person. The process then passes back toblock 602.

Referring again to block 602, if the user has moved the cursor to andheld it over the phone icon of one of the people, the process passes toblock 606, which depicts displaying, as in the example illustrated byFIG. 8, phone numbers and phone availability for the person. The processthen passes back to block 602.

Referring again to block 602, if the user has moved the cursor to andheld it over the in-person icon of one of the people, the process passesto block 608, which illustrates displaying, as in the example depictedby FIG. 9, in-person availability for the person. The process thenpasses back to block 602.

Referring again to block 602, if the user has moved the cursor to andheld it over the icon representing the IM status of one of the people,the process passes to block 610, which depicts displaying, as in theexample illustrated by FIG. 10, an enhanced IM status message for theperson. The process then passes back to block 602.

And, referring again to block 602, if the user has moved the cursor toand held it over another function for one of the people or has selecteda client menu option, the process passes to block 612, which illustratesexecuting the specified function. Examples of these functions includesending a message, adding a user, or changing states.

Another example is depicted by FIG. 11. If the user has moved the cursorto and held it over the icon representing the wireless status of one ofthe people, an enhanced wireless status message is displayed for theperson. The process then passes back to block 602.

FIGS. 7 through 11 are examples of how a client may display the dynamiccontact information for a set of entities in accordance with the presentinvention. Additional and/or alternate icons, text, color, formatting,and techniques may be used to convey this or alternate information tothe user.

FIG. 12 depicts an example of an electronic status board in accordancewith the present invention. This figure shows one example of how thedynamic contact information for a set of entities may be displayed. Thedisplayed information can be tailored to the needs of those viewing thedata. If on the physical display insufficient space is available, thedisplay could refresh after a predetermined amount of time withadditional information for the current set of entities, or informationfor a new set of entities. Note that FIG. 12 provides a very basic viewof the data. Enhanced views, such as those shown in FIGS. 7 through 11,can be used for the electronic status board, but the capabilities of thephysical status board device must be considered when creating theinterface.

The electronic status board system observes the basic client-servermodel that is also used by instant messaging systems. The electronicstatus board has clients that can be physical displays or onlineapplications. The physical display is a simple display device that iscapable of displaying text and/or graphical information and includes,but is not limited to, a computer display or an LCD panel. Both theonline and physical clients display the dynamic contact informationbased on user preferences. For the physical display, the preferences canbe entered from an accompanying application used to drive the physicalstatus board. For this invention, the functions described previously foran IM system apply to electronic status boards as well, except that theelectronic status board clients are not capable of updating the statusinformation.

The following is a simplified example of the present invention.

Suppose a person has specified the following default preferences:

Preferences for Free Time:

-   -   Instant Message who can see me=provided by IM client    -   Instant Message status=active    -   Office phone status=available    -   Cell phone status=available    -   Wireless Messaging status=available    -   Preferred means of contact=office phone

Preferences for In-person meeting:

-   -   Instant Message who can see me=provided by IM client    -   Instant Message status=active    -   Office phone status=not available    -   Cell phone status=not available    -   Wireless Messaging status=available    -   Preferred means of contact=pager

The person's calendar has the following entries for today:

Entry 1: 10:00–11:00 In-person meeting

-   -   Subject=view charts online    -   Location=CR 202    -   IM status: do not disturb (DND)

Entry 2: 12:00–13:00 In-person meeting

-   -   subject=department meeting

The calendar data, preferences and company directory have been analyzedby the calendar engine and the resulting dynamic contact information isavailable for use by the status engine.

When the current time is 10:00, the status engine determines that thestatus server needs an update for this person. The status engine willthen send the dynamic contact information relating to entry 1 to thestatus server. The status server will propagate this information asrequired to the subscribing clients. At 11:00, the person's meeting hasended and the status server needs to be updated. The status engine sendsthe dynamic contact information relating to free time to the statusserver. Similarly at 12:00 and at 13:00 updates will be sent to thestatus server.

The dynamic contact information that is sent to the status server wouldcontain the various status types (e.g., telephone status, IM status, andetc.) as well as the associated contact data (alternate contact person,pager number, etc.). For the previous example, at 10:00 the statusengine would have sent to the status server that the person was notavailable via telephone until 11:00, was in “do-not-disturb” mode for IMuntil 11:00, but was available by page. Additional information such asthe person's pager number 555-1112, backup person(sally@company123.com), and location (CR 202) would be provided.

It is important to note that while the present invention has beendescribed in the context of a fully functioning data processing system,those of ordinary skill in the art will appreciate that the processes ofthe present invention are capable of being distributed in the form of acomputer readable medium of instructions and a variety of forms and thatthe present invention applies equally regardless of the particular typeof signal bearing media actually used to carry out the distribution.Examples of computer readable media include recordable-type media such afloppy disc, a hard disk drive, a RAM, CD-ROMs, and transmission-typemedia such as digital and analog communications links.

The description of the present invention has been presented for purposesof illustration and description, and is not intended to be exhaustive orlimited to the invention in the form disclosed. Many modifications andvariations will be apparent to those of ordinary skill in the art. Theembodiment was chosen and described in order to best explain theprinciples of the invention, the practical application, and to enableothers of ordinary skill in the art to understand the invention forvarious embodiments with various modifications as are suited to theparticular use contemplated.

1. A method in a computer system for providing dynamic contactinformation, said method comprising the steps of: establishing a statussystem, including at least one status server and a plurality of clients;specifying, for a given client within the plurality of clients, aplurality of subscribed entities for which the given client subscribesto automatically receive an update of dynamic contact information of theplurality of subscribed entities from a dynamic contact informationservice, wherein the dynamic contact information service dynamicallyupdates the dynamic contact information from a calendar system toindicate current contact information for the plurality of entities, andwherein the dynamic contact information comprises dynamic contactrecords indicating current statuses and information relating to thecurrent statuses of the plurality of entities; retrieving a plurality ofdynamic contact records for the plurality of entities from the dynamiccontact information service, wherein the plurality of entities comprisesthe plurality of subscribed entities; sending the plurality of dynamiccontact records to the at least one status server; identifying, at theat least one status server, at least one subscribed dynamic contactrecord from the plurality of dynamic contact records that corresponds toone of the plurality of subscribed entities; updating at least onedynamic contact record in the at least one status server with the atleast one subscribed dynamic contact record; automatically sending theat least one subscribed dynamic contact record from the at least onestatus server to said given client; and displaying, at the given client,information for one of the plurality of subscribed entities from the atleast one subscribed dynamic contact record based on display preferencesspecified by an operator of the given client.
 2. The method according toclaim 1, wherein updating at least one dynamic contact record in the atleast one status server with the at least one subscribed dynamic contactrecord comprising: analyzing a calendar in the calendar system;determining a plurality of periods of time; associating a start time anda stop time with each of said plurality of periods of time; andassociating dynamic contact information with each of said plurality ofperiods of time, wherein said dynamic contact information is derivedfrom said calendar, preferences, and directory information of thecalendar system for one of said plurality of entities.
 3. The methodaccording to claim 2, wherein each said dynamic contact informationcomprises a current telephone type, a current telephone status, acurrent telephone number, a current telephone status time period, anoffice telephone number, a voice-mail status, and a voice-mail checkingfrequency information for one of said plurality of entities associatedwit each said dynamic contact information.
 4. The method according toclaim 3, wherein said current telephone status comprises an indicationof whether a current telephone is busy.
 5. The method according to claim3, wherein said current telephone status comprises an indication ofwhether a telephone associated with said current telephone status iscurrently in service.
 6. The method according to claim 2, wherein saiddynamic contact information comprises an in-person status and anin-person-status time period, and a physical location for one of saidplurality of entities, said physical location being a location wheresaid one of said plurality of entities can be currently located.
 7. Themethod according to claim 2, wherein said dynamic contact informationcomprises a wireless-messaging status, a wireless-message address, and awireless-messaging time period for one of said plurality of entities,said wireless-messaging address being a wireless messaging address atwhich said one of said plurality of entities can be reached by wirelessmessaging.
 8. The method according to claim 7, wherein saidwireless-messaging status comprises an indication of whether awireless-messaging device associated with said wireless-messagingaddress is currently in service.
 9. The method according to claim 2,wherein said dynamic contact information comprises an instant-messageuser name, an instant-message status, and an instant-message time periodfor one of said plurality of entities, said instant-message user namebeing an instant-message user name at which said one of said pluralityof entities can be reached via an instant-message service.
 10. Themethod according to claim 2, wherein said dynamic contact informationcomprises an e-mail address and an e-mail checking frequency informationfor said one of said plurality of entities.
 11. The method according toclaim 2, wherein said dynamic contact information comprises anindication of a best current method for contacting said one of saidplurality of entities.
 12. The method according to claim 2, wherein saiddynamic contact information an indication of an alternate contact personfor said one of said plurality of entities.
 13. The method according toclaim 2, wherein updating at least one dynamic contact record in the atleast one status server with the at least one subscribed dynamic contactrecord further comprising: determining a current time; determining oneof said plurality of periods of time having a start time at or beforesaid current time and a stop time after said current time; creating acurrent dynamic contact record using the dynamic contact informationassociated with said one of said plurality of periods of time; andupdating said status server with said current dynamic contact record.14. The method according to claim 1, further comprising filtering fieldsof the at least one subscribed dynamic information record in accordancewith information specifying who may view the given client in the atleast one subscribed dynamic contact record and only sending allowedfields to said given client.
 15. The method according to claim 1,wherein said information comprises a current telephone type, a currenttelephone status, a current telephone number, a current telephone statustime period, an office telephone number, a voice-mail status, and avoice-mail checking frequency information for said one of said pluralityof subscribed entities.
 16. The method according to claim 15, furthercomprising displaying said current telephone status at said given clientusing icons.
 17. The method according to claim 15, wherein saidinformation further comprises an indication of whether a telephoneassociated with said current telephone status is busy.
 18. The methodaccording to claim 17, further comprising displaying the indication ofwhether the telephone associated with the current telephone status isbusy at said given client using icons.
 19. The method according to claim15, wherein said information further comprises an indication of whethera telephone associated with said current telephone status is currentlyin service.
 20. The method according to claim 19, further comprisingdisplaying the indication of whether a telephone associated with saidcurrent telephone status is currently in service at said given clientusing icons.
 21. The method according to claim 1, wherein saidinformation comprises an in-person status, an in-person status timeperiod, and a physical location for said one of said plurality ofsubscribed entities, said physical location being a location where saidone of said plurality of subscribed entities can be found.
 22. Themethod according to claim 21, further comprising displaying said currentin-person status at said given client using icons.
 23. The methodaccording to claim 1, wherein said information comprises awireless-messaging status, a wireless-messaging address, and awireless-messaging time period for said one of said plurality ofsubscribed entities, said wireless-messaging address being awireless-messaging address at which said one of said plurality ofsubscribed entities can be reached by wireless messaging.
 24. The methodaccording to claim 23, further comprising displaying said currentwireless messaging status at said given client using icons.
 25. Themethod according to claim 23, wherein said wireless-messaging statuscomprises an indication of whether a wireless-messaging deviceassociated with said wireless-messaging address is currently in service.26. The method according to claim 25, further comprising displaying theindication of whether the wireless-messaging device associated with thewireless-messaging address is currently in service at said given clientusing icons.
 27. The method according to claim 1, wherein saidinformation comprises an instant-message user name, an instant-messagestatus, and an instant-message time period for said one of saidplurality of subscribed entities, said instant-message user name beingan instant-message user name at which said one of said plurality ofsubscribed entities can be reached via an instant-messaging service. 28.The method according to claim 27, further comprising displaying saidcurrent instant messaging status at said given client using icons. 29.The method according to claim 1, wherein said information comprises ane-mail address and e-mail checking frequency information for said one ofsaid plurality of subscribed entities.
 30. The method according to claim1, wherein said information comprises an indication of a best currentmethod for contacting said one of said plurality of subscribed entities.31. The method according to claim 1 wherein said information comprisesan indication of an alternate contact person for said one of saidplurality of subscribed entities.
 32. The method according to claim 1,further comprising displaying said information in response to theoperator of the given client selecting said one of said plurality ofsubscribed entities.
 33. The method according to claim 1, furthercomprising: hovering a cursor over a name of said one of said pluralityof subscribed entities; and displaying a full status message.
 34. Themethod according to claim 33, wherein said full status message comprisesan in-person status, in-person status time periods a physical location,an e-mail address, an e-mail checking frequency information, an officetelephone number a voice mail checking frequency information, anindication of a best current method for contacting, and an indication ofan alternate contact person associated with said one of said pluralityof subscribed entities.
 35. The method according to claim 1, furthercomprising hovering a cursor over a phone icon associated with said oneof said plurality of subscribed entities; and displaying a currenttelephone number, a current telephone type, a current telephone status,a current telephone status time period, an office phone number, and avoice mail checking information for said one of said plurality ofsubscribed entities.
 36. The method according to claim 1, furthercomprising: hovering a cursor over an in-person icon associated withsaid one of said plurality of subscribed entities; and displaying anin-person status, a physical location, and an in-person-status timeperiod associated with said one of said plurality of subscribedentities.
 37. The method according to claim 1, further comprising:hovering a cursor over an instant-messaging icon associated with saidone of said plurality of subscribed entities; and displaying aninstant-messaging user name, an instant-messaging status, and aninstant-messaging time period associated with said one of said pluralityof subscribed entities.
 38. The method according to claim 1, furthercomprising: hovering a cursor over a wireless-messaging icon associatedwith said one of said plurality of subscribed entities; and displaying awireless-messaging status, a wireless-messaging address, and awireless-messaging time period associated with said one of saidplurality of subscribed entities.
 39. The method according to claim 1,wherein the display preferences comprise displaying portions of saidinformation and portions of entities in said plurality of subscribedentities.
 40. The method according to claim 1, wherein retrieving theplurality of dynamic contact records for the plurality of entitiescomprises retrieving from a status table of the dynamic contactinformation service comprising the plurality of dynamic contact records.41. The method according to claim 40, wherein the displaying preferencescomprise displaying information only for entities whose in-personstatus, telephone status, wireless-messaging status andinstant-messaging status meet criteria specified in the displaypreferences.
 42. The method according to claim 1, wherein displaying, atthe given client, information for one of the plurality of subscribedentities from the at least one subscribed dynamic contact record basedon display preferences specified by the given client comprisesdisplaying only portions of said information specified in the displaypreferences.
 43. A computer system for providing dynamic contactinformation comprising: at least one status server; and a plurality ofclients; wherein, for a given client within the plurality of clients aplurality of subscribed entities is specified for which the given clientsubscribes to automatically receive an update of dynamic contactinformation of he plurality of subscribed entities from a dynamiccontact information service, wherein the dynamic contact informationservice dynamically updates the dynamic contact information from acalendar system to indicate current contact information for theplurality of entities, and wherein the dynamic contact informationcomprises dynamic contact records indicating current statuses andinformation relating to the current statuses of the plurality ofentities; wherein a plurality of dynamic contact records is retrievedfor the plurality of entities from the dynamic contact informationservice, wherein the plurality of entities comprises the plurality ofsubscribed entities; wherein the plurality of dynamic contact recordsare sent provided to the at least one status server; wherein at leastone subscribed dynamic contact record from the plurality of dynamiccontact records is identified, at the at least one status server, thatcorresponds to one of the plurality of subscribed entities; wherein atleast one dynamic contact record in the at least one status server isupdated with the at least one subscribed dynamic contact record; whereina status server within the at least one status server automaticallysends the at least one subscribed dynamic contact record to the givenclient; and wherein information for one of the plurality of subscribedentities from the at least one subscribed dynamic contact record isdisplayed at the given client based on display preferences specified byan operator of the given client.
 44. The system according to claim 43,wherein the at least one dynamic contact record in the at least onestatus server is updated with the at least one subscribed dynamiccontact record comprises: instructions for analyzing a calendar in acalendar system; instructions far determining a plurality of periods oftime; instructions for associating a start time and a stop time witheach of said plurality of periods of time; and instructions forassociating dynamic contact information with each of said plurality ofperiods of time, said dynamic contact information is derived from saidcalendar, preferences, and directory information of the calendar systemfor one of said plurality of entities.
 45. The system according to claim44, wherein each said dynamic contact information comprises a currenttelephone type, a current telephone status, a current telephone number,a current telephone status time period, an office telephone number, avoice-mail status, and a voice-mail checking frequency information forone of said plurality of entities associated with each said dynamiccontact information.
 46. The system according to claim 45, wherein saidcurrent telephone status comprises an indication of whether a currenttelephone is busy.
 47. The system according to claim 45, wherein saidcurrent telephone status comprises an indication of whether a telephoneassociated with said current telephone status is currently in service.48. The system according to claim 44, wherein said dynamic contactinformation comprises an in-person-status and an in-person-status timeperiod, and a physical location for one of said plurality of entities,said physical location being a location where said one of said pluralityof entities can be currently located.
 49. The system according to claim44, wherein said dynamic contact information comprises awireless-messaging status, a wireless-messaging address, and awireless-messaging time period for one of said plurality of entities,said wireless-messaging address being a wireless messaging address atwhich said one of said plurality of entities can be reached by wirelessmessaging.
 50. The system according to claim 49, wherein saidwireless-messaging status comprises an indication of whether awireless-messaging device with said wireless-messaging address iscurrently in service.
 51. The system according to claim 44, wherein saiddynamic contact information comprises an instant-message user name, aninstant-message status, and an instant-message time period for one ofsaid plurality of entities, said instant-message user name being aninstant-message user name at which said one of said plurality ofentities can be reached via an instant-message service.
 52. The systemaccording to claim 44, wherein said dynamic contact informationcomprises an e-mail address and an e-mail checking frequency informationfor said one of said plurality of entities.
 53. The system according toclaim 44, wherein said dynamic contact information comprises anindication of a best current method for contacting said one of saidplurality of entities.
 54. The system according to claim 44, whereinsaid dynamic contact information comprises an indication of an alternatecontact person for said one of said plurality of entities.
 55. Thesystem according to claim 44, wherein at least one dynamic contactrecord in the at least one status server is updated with the at leastone subscribed dynamic contact record further comprises: a current timebeing determined; one of said plurality of periods of time having astart time at or before said current time and a stop time after saidcurrent time being determined; a current dynamic contact record beingcreated using the dynamic contact information associated with said oneof said plurality of periods of time; and said status server beingupdated with said current dynamic contact record.
 56. The systemaccording to claim 43, further comprising instructions for filteringfields of the at least one subscribed dynamic information record inaccordance with information specifying who may view the given client insaid the at least one subscribed dynamic contact record and only sendingallowed fields to said given client.
 57. The system according to claim43, wherein said information comprises a current telephone type, acurrent telephone status, a current telephone number, a currenttelephone status time period, an office telephone number, a voice-mailstatus, and a voice-mail checking frequency information for said one ofsaid plurality of subscribed entities.
 58. The system according to claim57, further comprising said current telephone status being displayed atsaid given client using icons.
 59. The system according to claim 57,wherein said information further comprises an indication of whether atelephone associated with said current telephone status is busy.
 60. Thesystem according to claim 59, further comprising said indication ofwhether a telephone associated with said current telephone status isbusy being displayed at said given client using icons.
 61. The systemaccording to claim 57, wherein said information further comprises anindication of whether a telephone associated with said current telephonestatus is currently in service.
 62. The system according to claim 61,further comprising said indication of whether a telephone associatedwith said current telephone status is currently in service beingdisplayed at said given client using icons.
 63. The system according toclaim 43, wherein said information comprises an in-person status, anin-person status time period, and a physical location for said one ofsaid plurality of subscribed entities, said physical location being alocation where said one of said plurality of subscribed entities can befound.
 64. The system according to claim 63, further comprising saidcurrent in-person status being displayed at said given client usingicons.
 65. The system according to claim 43, wherein said informationcomprises a wireless-messaging status, a wireless-messaging address, anda wireless-messaging time period for said one of said plurality ofsubscribed entities, said wireless-messaging address being awireless-messaging address at which said one of said plurality ofsubscribed entities can be reached by wireless messaging.
 66. The systemaccording to claim 65, further comprising said current wirelessmessaging status being displayed at said given client using icons. 67.The system according to claim 65, wherein said wireless-messaging statuscomprises an indication of whether a wireless-messaging deviceassociated with said wireless-messaging address is currently in service.68. The system according to claim 67, further comprising said indicationof whether the wireless-messaging device associated with saidwireless-messaging address is currently in service being displayed atsaid given client using icons.
 69. The system according to claim 43,wherein said information comprises an instant-message user name, aninstant-message status, and an instant-message time period for said oneof said plurality of subscribed entities, said instant-message user namebeing an instant-message user name at which said one of said pluralityof subscribed entities can be reached via an instant-messaging service.70. The system according to claim 69, further comprising said currentinstant messaging status being displayed at said given client usingicons.
 71. The system according to claim 43, wherein said informationcomprises an e-mail address and an e-mail checking frequency informationfor said one of said plurality of subscribed entities.
 72. The systemaccording to claim 43, wherein said information comprises an indicationof a best current method for contacting said one of said plurality ofsubscribed entities.
 73. The system according to claim 43, wherein saidinformation comprises an indication of an alternate contact person forsaid one of said plurality of subscribed entities.
 74. The systemaccording to claim 43, further comprising said information beingdisplayed in response to the operator of the given client selecting saidone of said plurality of subscribed entities.
 75. The system accordingto claim 43, further comprising: a cursor being hovered over a name ofsaid one of said plurality of subscribed entities; and a full statusmessage being displayed.
 76. The system according to claim 75, whereinthe full status message comprises an in-person status, an in-personstatus time period, a physical location, an e-mail address, and ane-mail checking frequency information, an office telephone number, avoice mail checking frequency information, an indication of a bestcurrent method for contacting, and an indication of an alternate contactperson associated with said one of said plurality of subscribedentities.
 77. The system according to claim 43, further comprising: acursor being hovered over a phone icon associated with said one of saidplurality of subscribed entities; and a current telephone number, acurrent telephone type, a current telephone status, a current telephonestatus time period, an office phone number, and a voice mail checkinginformation for said one of said plurality of subscribed entities beingdisplayed.
 78. The system according to claim 43, further comprising: acursor being hovered over an in-person icon associated with said one ofsaid plurality of subscribed entities; and an in-person status, aphysical location, and an in-person-status time period associated withsaid one of said plurality of subscribed entities being displayed. 79.The system according to claim 43, further comprising: a cursor beinghovered over an instant-messaging icon associated with said one of saidplurality of subscribed entities; and an instant-messaging user name, aninstant-messaging status, and an instant-messaging time periodassociated with said one of said plurality of subscribed entities beingdisplayed.
 80. The system according to claim 43, further comprising: acursor being hovered over a wireless-messaging icon associated with saidone of said plurality of subscribed entities; and a wireless-messagingstatus, a wireless-messaging address, and a wireless-messaging timeperiod associated with said one of said plurality of subscribed entitiesbeing displayed.
 81. The system according to claim 43, wherein thedisplay preferences comprise displaying portions of said dynamic contactinformation and portions of entities in said plurality of subscribedentities.
 82. The system according to claim 43, wherein the plurality ofdynamic contact records is retrieved for a plurality of entities fromthe dynamic contact information service comprises retrieving from astatus table of the dynamic contact information service comprising theplurality of dynamic contact records.
 83. The system according to claim43, wherein the information for one of the plurality of subscribedentities from the at least one subscribed dynamic contact record isdisplayed at the given client based on display preferences specified bythe operator comprises displaying only portions of information specifiedin the display preferences.
 84. The system according to claim 43,wherein the displaying preferences comprise displaying information onlyfor entities whose in-person status, telephone status,wireless-messaging status, and instant-messaging status meet criteriaspecified in the display preferences.
 85. A computer program product ina computer system for providing dynamic contact information comprising:computer readable program code configured to establish a status system,including at least one status server and a plurality of clients;computer readable program code configured to specify for a given clientwithin the plurality of clients a plurality of subscribed entities forwhich the client subscribes to automatically receive an update ofdynamic contact information of the plurality of the subscribed entitiesfrom a dynamic contact information service, wherein the dynamic contactinformation service dynamically updates the dynamic contact informationfrom a calendar system to indicate current contact information for theplurality of entities, and wherein the dynamic contact informationcomprises dynamic contact records indicating current statuses andinformation relating to the current statuses of the plurality ofentities, computer readable program code configured to retrieve aplurality of dynamic contact records for the plurality of entities fromthe dynamic contact information service, wherein the plurality ofentities comprises the plurality of subscribed entities; computerreadable program code configured to send the plurality dynamic contactrecords to the at least one status server; computer readable programcode configured to identify, at the at least one status server, at leastone subscribed dynamic contact record from the plurality of dynamiccontact records that corresponds to one of the plurality of subscribedentities; computer readable program code configured to update at leastone dynamic contact record in the at least one status server with the atleast one subscribed dynamic contact record; computer readable programcode configured to automatically send the at least one subscribeddynamic contact record from the at least one status server to said givenclient; and computer readable program code configured to display, at thegiven client, information for one of the plurality of subscribedentities from the at least one subscribed dynamic contact record basedon display preferences specified by an operator of the even client. 86.The product according to claim 85, wherein the computer readable programcode configured to update at least one dynamic contact record in the atleast one status server with the at least one subscribed dynamic contactrecord comprises: computer readable program code configured to analyze acalendar of the calendar system; computer readable program codeconfigured to determine a plurality of periods of time; computerreadable program code configured to determine a start time and a stoptime with each of said plurality of periods of time; and computerreadable program code configured to associate dynamic contactinformation with each of said plurality of periods of time, said dynamiccontact information is derived from said calendar, preferences, anddirectory information of the calendar system for one of said pluralityof entities.
 87. The product according to claim 86, wherein each saiddynamic contact information comprises a current telephone type, acurrent telephone status, a current telephone number, a currenttelephone status time period, an office telephone number, a voice-mailstatus, and a voice-mail checking frequency information for one of saidplurality of entities associated with each said dynamic contactinformation.
 88. The product according to claim 87, wherein said currenttelephone status comprises an indication of whether a telephoneassociated with the current telephone status is busy.
 89. The productaccording to claim 87, wherein said current telephone status comprisesan indication of whether a telephone associated with said currenttelephone status is currently in service.
 90. The product according toclaim 86, further wherein said dynamic contact information comprises anin-person status and an in-person-status time period, and a physicallocation for one of said plurality of entities, said physical locationbeing a location where said one of said plurality of entities can becurrently located.
 91. The product according to claim 86, wherein saiddynamic contact information comprises a wireless-messaging status, awireless-messaging address, and a wireless-messaging time period for oneof said plurality of entities, said wireless-messaging address being awireless messaging address at which said one of said plurality ofentities can be reached by wireless messaging.
 92. The product accordingto claim 91, wherein said wireless-messaging status comprises anindication of whether a wireless-messaging device associated with saidwireless-messaging address is currently in service.
 93. The productaccording to claim 86, wherein said dynamic contact informationcomprises an instant-message user name, an instant-message status, andan instant-message time period for one of said plurality of entities,said instant-message user name being an instant-message user name atwhich said one of said plurality of entities can be reached via aninstant-message service.
 94. The product according to claim 86, whereinsaid dynamic contact information comprises an e-mail address and ae-mail checking frequency information for said one of said plurality ofentities.
 95. The product according to claim 86, wherein said dynamiccontact information comprises an indication of a best current method forcontacting said one of said plurality of entities.
 96. The productaccording to claim 86, wherein said dynamic contact informationcomprises an indication of an alternate contact person for said one ofsaid plurality of entities.
 97. The product according to claim 86,wherein the computer readable program code configured to update at leastone dynamic contact record in the at least one status server with the atleast one subscribed dynamic contact record further comprises: computerreadable program code configured to determine a current time; computerreadable program code configured to determine one of said plurality ofperiods of time having a start time at or before said current time and astop time after said current time; computer readable program codeconfigured to create a current dynamic contact record using the dynamiccontact information associated with said one of said plurality ofperiods of time; and computer readable program code configured to createsaid status server with said current dynamic contact record.
 98. Theproduct according to claim 85, further comprising computer readableprogram code configured to filter fields of the at least one subscribeddynamic information record in accordance with information specifying whomay view the given client in the at least one subscribed dynamic contactrecord and only sending allowed fields to said given clients.
 99. Theproduct according to claim 85, wherein said information comprises acurrent telephone type, a current telephone status, a current telephonenumber a current telephone status time period, an office telephonenumber, a voice-mail status, and a voice-mail checking frequencyinformation for said one of said plurality of subscribed entities. 100.The product according to claim 99, further comprising computer readableprogram code configured to display said current telephone status at saidgiven client using icons.
 101. The product according to claim 99,wherein said information further comprises an indication of whether atelephone associated with said current telephone status is busy. 102.The product according to claim 101, further comprising computer readableprogram code configured to display the indication of whether a telephoneassociated with said current telephone status is busy at said givenclient using icons.
 103. The product according to claim 99, wherein saidinformation further comprises an indication of whether a telephoneassociated with said current telephone status is currently in service.104. The product according to claim 103, further comprising computerreadable program code configured to display the indication of whether atelephone associated with said current telephone status is currently inservice at said given using icons.
 105. The product according to claim85, wherein said information comprises an in-person status, an in-personstatus time period, and a physical location for said one of saidplurality of subscribed entities, said physical location being alocation where said one of said plurality of subscribed entities can befound.
 106. The product according to claim 105, further comprisingcomputer readable program code configured to display said currentin-person status at said given client using icons.
 107. The productaccording to claim 85, said information comprises a wireless-messagingstatus, a wireless-messaging address, and a wireless-messaging timeperiod fur said one of said plurality of subscribed entities, saidwireless-messaging address being a wireless-messaging address at whichsaid one of said plurality of subscribed entities can be reached bywireless messaging.
 108. The product according to claim 107, furthercomprising computer readable program code configured to display saidcurrent wireless messaging status at said given client using icons. 109.The product according to claim 107, wherein said wireless-messagingstatus comprises an indication of whether a wireless-messaging deviceassociated with said wireless-messaging address is currently in service.110. The product according to claim 108, further comprising computerreadable program code configured to display the indication of whetherthe wireless-messaging device associated with said wireless-messagingaddress is currently in service at said given client using icons. 111.The product according to claim 85, wherein said information comprises aninstant-message user name, an instant-message status, and aninstant-message time period for said one of said plurality of subscribedentities, said instant-message user name being an instant-message username at which said one of said plurality of subscribed entities can bereached via an instant-messaging service.
 112. The product according toclaim 111, further comprising computer readable program code configuredto display said current instant messaging status at said given clientusing icons.
 113. The product according to claim 85, wherein saidinformation comprises an e-mail address and an e-mail checking frequencyinformation for said one of said plurality of subscribed entities. 114.The product according to claim 85, wherein said information comprises anindication of a best current method for said one of said plurality ofsubscribed entities.
 115. The product according to claim 85, whereinsaid information comprises an indication of an alternate contact personfor said one of said plurality of subscribed entities.
 116. The productaccording to claim 85, further comprising computer readable program codeconfigured to display said information in response to the operator ofthe given client selecting said one of said plurality of subscribedentities.
 117. The product according to claim 85, further comprising:computer readable program code configured to hover a cursor over a nameof said one of said plurality of subscribed entities; and computerreadable program code configured to display a full status message. 118.The product according to claim 117, wherein said full status messagecomprises an in-person status, an in-person status time period, aphysical location, an e-mail address, an e-mail checking frequencyinformation, an office telephone number, a voice mail checking frequencyinformation, an indication of a best current method for contacting, andan indication of an alternate contact person associated with said one ofsaid plurality of subscribed entities.
 119. The product according toclaim 85, further comprising: computer readable program code configuredto hover a cursor over a phone icon associated with said one of saidplurality of subscribed entities; and computer readable program codeconfigured to display a current telephone number, a current telephonetype, a current telephone status, a current telephone status timeperiod, office phone number, and a voice mail checking information forsaid one of said plurality of subscribed entities.
 120. The productaccording to claim 85, further comprising: computer readable programcode configured to hover a cursor over an in-person icon associated withsaid one of said plurality of subscribed entities; and instructions fordisplaying an in-person status, a physical location, and anin-person-status time period associated with said one of said pluralityof subscribed entities.
 121. The product according to claim 85, furthercomprising: computer readable program code configured to hover a cursorover an instant-messaging icon associated with said one of saidplurality of subscribed entities; and computer readable program codeconfigured to display an instant-messaging user name, aninstant-messaging status, and an instant-messaging time periodassociated with said one of said plurality of subscribed entities. 122.The product according to claim 85, further comprising: computer readableprogram code configured to hover a cursor over a wireless-messaging iconassociated with said one of said plurality of subscribed entities; andcomputer readable program code configured to display awireless-messaging status, a wireless-messaging address, and awireless-messaging time period associated with said one of saidplurality of subscribed entities.
 123. The product according to claim85, wherein the display preferences comprise displaying portions of saiddynamic contact information and portions of entities in said pluralityof subscribed entities.
 124. The product according to claim 85, furthercomprising wherein the computer readable program code configured toretrieve a plurality of dynamic contact records for a plurality ofentities from the dynamic contact information service comprises computerreadable program code configured to retrieve from a status table of thedynamic contact information service comprising the plurality of dynamiccontact records.
 125. The product according to claim 85, wherein thecomputer readable program code configured to display, at the givenclient, information for one of the plurality of subscribed entities fromthe at least one subscribed dynamic contact record based on displaypreferences specified by the operator comprises computer readableprogram code configured to display only portions of said informationspecified in the display preferences.
 126. The product according toclaim 85, wherein the computer readable program code configured todisplay, at the given client, information for one of the plurality ofsubscribed entities from the at least one subscribed dynamic contactrecord based on display preferences specified bit the operator comprisescomputer readable program code configured to display information onlyfor entities whose in-person status, telephone status,wireless-messaging status and instant-messaging status meet criteriaspecified in the display preferences.